package com.zb.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zb.entity.ZjAuthor;
import com.zb.entity.vo.AuthorListVo;
import com.zb.search.SearchDto;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 * 系统权限菜单表 Mapper 接口
 * </p>
 *
 * @author WEN
 * @since 2024-02-17
 */
@Repository
public interface ZjAuthorMapper extends BaseMapper<ZjAuthor> {

    /**
     * 批量启用或禁用菜单权限
     * @param ids 菜单权限ID
     * @param status 菜单权限状态：false-启用，true-禁用
     */
    void updateDisabledBatchById(@Param("ids") List<Long> ids, @Param("status") boolean status);


    /**
     * 查询菜单权限名称是否存在
     * @param id 菜单权限ID
     * @param parentId 父级ID
     * @param name 菜单权限名称
     * @return
     */
    Integer existByName(@Param("id") Long id, @Param("parentId") Long parentId, @Param("name") String name);

    /**
     * 查询菜单权限编码是否存在
     * @param id 菜单权限ID
     * @param parentId 父级ID
     * @param code 菜单权限编码
     * @return
     */
    Integer existByCode(@Param("id") Long id, @Param("parentId") Long parentId, @Param("code") String code);

    /**
     * 获取菜单权限列表
     * @param search 搜索对象
     * @return
     */
    List<AuthorListVo> getList(@Param("search") SearchDto search);

    /**
     * 获取菜单权限列表总记录数
     * @param search 搜索对象
     * @return
     */
    long getListCount(@Param("search") SearchDto search);


}
